import java.util.Scanner;

public class DianCai {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String dishes[]={"红烧带鱼","鱼香肉丝","时令鲜疏"};
        int price[]={38,20,10};
        int honors[]={50,100,20};
        int hot[]={5,4,3};
        String orders[][]=new String[100][];

        int chose=0;
        System.out. println("吃货联盟");
        do {
            System.out.println("*****************");
            System.out.println("1、我要订餐");
            System.out.println("2、查看餐袋");
            System.out.println("3、签收订单");
            System.out.println("4、删除订单");
            System.out.println("5、我要点赞");
            System.out.println("6、退出系统");
            System.out.println("*****************");
            System.out.println("请选择：");
            chose=sc.nextInt();
            switch (chose) {

                case 1:
                    System.out.println("***我要订餐***");
                    System.out.println("请输入订餐人姓名：");
                    String name=sc.next();

                    System.out.println("序号     菜品    单价   热度");
                    for (int i = 0; i <dishes.length; i++) {
                        System.out.println(i+"\t\t"+dishes[i]+"\t"+price[i]+"元\t"+"\t"+hot[i]);
                    }

                    int dishNum=0;
                    do{
                        System.out.println("菜品编号");
                        dishNum=sc.nextInt();
                        if ((dishNum<0||dishNum>dishes.length)){
                            System.out.println("对不起，输入有误，请重新输入！");
                        }
                    }while (dishNum<0||dishNum>dishes.length);

                    int pcs=0;
                    do {
                        System.out.println("购买份数");
                        pcs=sc.nextInt();
                        if (pcs<1){
                            System.out.println("对不起，输入有误，请重新输入！");
                        }
                    }while (pcs<1);


                    int time;
                    do {
                        System.out.println("送餐时间为10点到22点");
                        time=sc.nextInt();
                        if (time<10||time>22){
                            System.out.println("对不起，输入有误，请重新输入！");
                        }
                    }while (time<10||time>22);

                    System.out.println("地址");
                    String addres=sc.next();

                    System.out.println("下单成功");
                    System.out.println(
                            "您定的商品信息是：" +dishes[dishNum]+ "\t" +pcs+"份");
                    System.out.println("送餐时间为"+time);

                    double cost=price[dishNum]*pcs;
                    double sent=cost>50?0:6;
                    double total=cost+sent;
                    System.out.println("餐费共计"+total+" 其中快递费"+sent+"元");

                    for (int i = 0; i < orders.length; i++) {
                        if (orders[i]==null){
                            orders[i]=new String[3];
                            orders[i][0]=name+"\t"+dishes[dishNum]+"\t"
                                    +pcs+"份\t"+time+"\t"+addres+"\t"+cost+"元";  //orders第一存储 菜品信息
                            orders[i][1]="已预定";                      //orders第二存储 订单信息
                            break;
                        }
                    }

                    break;

                case 2:
                    System.out.println("***查看餐袋***");
                    System.out.println("序号\t订餐人  餐品信息 时间 地址 总金额    订单状态");
                    for (int i = 0; i < orders.length; i++) {
                        if (orders[i]!=null){
                            System.out.println(i+"\t"+orders[i][0]+"\t\t"+orders[i][1]);
                        }else{
                            break;
                        }
                    }
                    break;

                case 3:
                    System.out.println("***签收订单***");
                    int num;
                    int end=0;
                    System.out.println("序号\t订餐人  餐品信息 时间 地址 总金额    订单状态");
                    for (int i = 0; i < orders.length; i++) {
                        if (orders[i]!=null){
                            System.out.println(i+"\t"+orders[i][0]+"\t\t"+orders[i][1]);
                        }else{
                            break;
                        }
                    }

                    do {
                        System.out.println("请输入要签收订单序号：");
                        for (int i = 0; i < orders.length; i++) {
                            if (orders[i]==null){
                                end=i+1;
                                break;
                            }
                        }

                        num=sc.nextInt();

                        if (num<0||num>end){
                            System.out.println("输入有误");
                        }else if ("已预定".equals(orders[num][1])){
                            orders[num][1]="已完成";
                            System.out.println("订单已完成");
                            break;
                        }else{
                            System.out.println("订单已签收，不能重复签收");
                            break;
                        }

                    }while (num<1||num>end||"已预定".equals(orders[num-1][1]));

                    break;

                case 4:
                    System.out.println("***删除订单***");
                    int n=0;   //输入数字
                    int e=0;  // 订单的最大数量
                    System.out.println("序号\t订餐人 \t餐品信息 \t送餐时间 \t地址 \t总金额 \t状态");
                    for (int i = 0; i < orders.length; i++) {
                        if (orders[i]!=null){
                            System.out.print(i+"\t"+orders[i][0]+"\t"+orders[i][1]+"\t");
                            System.out.println("\t  "+orders[i][1]);
                        }else{
                            break;
                        }
                    }


                    do {
                        for (int i = 0; i < orders.length; i++) {        //确定订单的最大数量
                            if (orders[i]==null){
                                e=i;
                                break;
                            }
                        }

                        System.out.println("要删除的订单编号：");
                        n=sc.nextInt();
                        if (n<1||n>e){
                            System.out.println("err");
                        }else if ( ! "已完成".equals(orders[n-1][1])){
                            System.out.println("订单未完成，不能删除");
                            break;
                        }else{
                            boolean isDelete=false;
                            for (int i = n-1; i < orders.length; i++) {
                                if (i==orders.length-1){
                                    orders[i]=null;
                                    isDelete=true;          //
                                }else{
                                    orders[i]=orders[i+1];   //前移
                                    if (orders[i]==null){
                                        isDelete=true;
                                        break;
                                    }
                                }
                            }
                        }
                    }while (n<1||n>e||"已完成".equals(orders[n][1]));

                    break;

                case 5:
                    System.out.println("***我要点赞***");
                    int hp=0;

                    System.out.println("请选择点赞菜品：");
                    hp=sc.nextInt();
                    if (hp<0||hp>dishes.length){
                        System.out.println("对不起，输入有误，请重新输入！");
                    }else{
                        hot[hp]++;
                    }

                    break;

                default:
                    System.out.println("6、退出系统");

            }

            if (chose>0&&chose<6){
                System.out.println("输入9返回！");
                chose=sc.nextInt();
            }else {
                break;
            }

        }while (chose==9);
        System.out.println("输入9返回！");
    }

}


